package com.zbcbms.dao;

import com.zbcbms.entity.User;
import com.zbcbms.entity.chart.UserJoinTimeCountChart;
import com.zbcbms.entity.chart.UserRoleCountChart;
import com.zbcbms.entity.vo.UserVo;

import java.util.List;

/**
 * @author fengq
 */
public interface UserDao extends BaseDao<User> {

    /**
     * selectOneById
     * @param id
     * @return
     */
    UserVo selectOneById(String id);

    /**
     * selectAllBook
     * @return
     */
    List<UserVo> selectAllUser();

    /**
     * changePasswordById  根据用户id修改用户密码
     * @param id
     * @param password
     * @return
     */
    Boolean changePasswordById(String id,String password);

    /**
     * selectPasswordByNumber
     * @param number
     * @return
     */
    String selectPasswordByNumber(String number);

    /**
     * 查询所有的用户编号
     * @return
     */
    List<String> selectAllUserNumber();

    /**
     * selectUserNumberByKeyword 根据关键词查询用户编号
     * @param keyword
     * @return
     */
    List<String> selectUserNumberByKeyword(String keyword);

    /**
     * selectUserNameByNumber
     * @param number
     * @return
     */
    String selectUserNameByNumber(String number);

    /**
     * selectUserCountByRole 根据用角色统计人数
     * @return
     */
    List<UserRoleCountChart> selectUserCountByRole();

    /**
     * selectUserCountBtJoinTme 根据加入时间统计人数
     * @return
     */
    List<UserJoinTimeCountChart> selectUserCountBtJoinTme();

    /**
     * 查询所有已经被删除的数据
     * @return
     */
    List<UserVo> selectAllDeletedUser();

    /**
     * selectUserVoByKeyWord
     * @param keyword
     * @return
     */
    List<UserVo> selectUserVoByKeyWord(String keyword);
}
